The present invention relates to error correction in data communications, and more particularly, to forward error correction (FEC). Even more particularly, the present invention relates to the selection and use of optimal Turbo Codes in high performance data communication systems, such as emerging third generation terrestrial cellular mobile radio and satellite telephone systems, for which flexibility in supporting a wide range of system requirements with respect to transmission data rates, channel coding rates, quality of service measures (e.g., latency, bit-error rate, frame error rate), and implementation complexity is highly desirable.
Forward error correction (FEC) is required in terrestrial and satellite ratio systems to provide high quality communication over the RF propagation channel, which induces signal waveform and spectrum distortions, including signal attenuation (freespace propagation loss) and multi-path induced fading. These impairments drive the design of the radio transmission and receiver equipment, the design objective which is to select modulation formats, error control schemes, demodulation and decoding techniques and hardware components that together provide an efficient balance between system performance and implementation complexity. Differences in propagation channel characteristics, such as between terrestrial and satellite communication channels, naturally result in significantly different system designs. Likewise, existing communication system continue to evolve in order to satisfy increased system requirements for new higher rate or higher fidelity communication services.
In the case of terrestrial cellular mobile radio telephony, Analog Mobile Phone System (AMPS) is an exemplary first generation system; the U.S. IS-136 and European GSM time-division multiple-access (TDMA) standards and the U.S. IS-95 code-division multiple-access (CDMA) standard are second generation systems; and the wideband CDMA standards currently under development (e.g., CDMA 2000 in the U.S. and UTRA in Europe) are third generation systems.
In the third generation systems the development of flexible, high-speed data communication services is of particular interest. Desirable features include the ability to perform rate adaptation and to satisfy a multiplicity of quality-of-service (QOS) requirements.
Traditional forward error correction (FEC) schemes for communication systems include use of convolutional codes, block codes such as Reed-Solomon or BCH codes, and/or concatenated coding schemes.
Turbo Codes are a relatively new class of block codes that have been demonstrated to yield bit error rate (BER) performance close to theoretical limits on important classes of idealized channels by means of an iterative soft-decision decoding method.
A Turbo encoder consists of a parallel concatenation of typically two systematic, recursive convolutional codes (xe2x80x9cconstituent codesxe2x80x9d) separated by an interleaver that randomizes the order of presentation of information bits to a second constituent encoder with respect to a first constituent encoder. The performance of a Turbo Code depends on the choice of constituent codes, interleaver, information block size (which generally increases with higher data rates), and number of decoder iterations. For a particular Turbo Code, in which the constituent codes are fixed, one can ideally adjust the block size and number of decoder iterations to tradeoff performance, latency and implementation complexity requirements. As the block size changes, however, a new interleaver matched to that block size is required.
In a CDMA network with synchronized base stations, forward link channels (from base station to user terminal) can be designed to be orthogonal, using, for example, Walsh-Hadamand spreading sequences. This is generally not possible, however, for reverse link channels (from user terminal to base station), which therefore operate asynchronously using spreading sequences that are only quasi-orthogonal. Thus, the reverse links in a synchronous CDMA network typically experience more interference and therefore may require stronger FEC (via lower rate codes) than the forward link channels do.
In an asynchronous CDMA network, the forward and reverse link channels are more similar in terms of interference levels, so it is possible to use a common FEC scheme (or at least more similar FEC schemes) on the two links.
The flexibility and high performance of Turbo Codes make them a potentially attractive technology for sophisticated data communications services. It is therefore desirable to identify Turbo Codes and Turbo coding FEC schemes that best match diverse service requirements with respective data rates and coding rates while minimizing implementation complexity.
The present invention advantageously addresses the above and other needs by providing methods for designing and using universally optimized Turbo Codes and rate-compatible puncturings to support incremental redundancy schemes such as automatic repeat request (ARQ).
In its most basic form, the invention can be characterized, in one embodiment as a method of processing data, in data services, with a set of rate-compatible Turbo Codes optimized at high code rates and derived from a universal constituent code, the Turbo Codes having compatible puncturing patterns. The method comprises: encoding a signal at a first and second encoder using a best rate 1/2 constituent code universal with higher and lower code rates, the first encoder and the second encoder each producing a respective plurality of parity bits for a data bit; puncturing the respective plurality of parity bits at each encoder with a higher rate best puncturing pattern; and puncturing the respective plurality of parity bits at each encoder with a lower rate best puncturing pattern.
In a variation, a method of processing data in data services uses a set of rate-compatible Turbo Codes derived from an optimal universal rate 1/3 constituent code, the Turbo Codes having similar constituent codes and compatible puncturing patterns, and comprises: encoding a signal with a best rate 1/3 constituent code at a first and a second encoder, each encoder producing a respective plurality of parity bits for each data bit; puncturing the plurality of parity bits with the a higher rate best puncturing pattern; and puncturing the plurality of parity bits with a lower rate best puncturing pattern.
In another variation, a method of rate-compatible Turbo encoding uses a set of rate-compatible Turbo Codes, the set optimized for code rate 1/4, comprising Turbo Codes with differing code rates and rate-compatible puncturing patterns. The method comprises: encoding a signal at a first and second encoder using a best rate 1/4 constituent code universal with higher and lower code rates, the first encoder and the second encoder each producing a respective plurality of parity bits for a data bit; puncturing the respective plurality of parity bits at each encoder with a higher rate best puncturing pattern; and puncturing the respective plurality of parity bits at each encoder with a lower rate best puncturing pattern.
In another embodiment, an encoding system uses a set of rate-compatible Turbo Codes derived from a best universal rate 1/2 constituent code, the set having compatible puncturing patterns, and comprises: a first and second encoder, each encoder comprising: a plurality of shift registers; a plurality of adders each adder coupled to a selected portion of the adders in a configuration corresponding to the best universal rate 1/2 constituent code; and a puncturer configured with the first and second encoder to puncture a plurality of data outputs from each of the first and second encoder, the puncturing determined by a desired Turbo Code rate in accordance with the set of the compatible puncturing patterns.
In a further variation, an encoding system uses a set of rate-compatible Turbo Codes derived from an optimal universal rate 1/3 constituent code, the rate compatible Turbo Codes having similar constituent codes and compatible puncturing patterns, and comprises: a first and second encoder, each encoder comprising: a plurality of shift registers; a plurality of adders, each of the adders coupled to a selected portion of the adders in a configuration corresponding to the rate 1/3 constituent code of; and a puncturer configured with the first and second encoder such to puncture a plurality of data outputs from the first and second encoder, the puncturing determined by a desired Turbo Code rate in accordance with the set of the compatible puncturing patterns.
Yet another variation of the system uses a set of rate-compatible Turbo Codes comprising Turbo Codes having a universal constituent code and rate-compatible puncturing patterns for different code rates, and comprises: a plurality of shift registers; a plurality of adders each adder coupled to a selected portion of the plurality of adders in a configuration corresponding to the universal constituent code; and a puncturer configured with the first and second encoder for puncturing a plurality of data outputs from the first and second encoder, the puncturing determined by a desired Turbo Code rate in accordance with the set of compatible puncturing patterns.